package com.zkdcloud.service;

import com.zkdcloud.domain.Product;
import com.zkdcloud.repository.ProductDao;
import com.zkdcloud.util.RandomUtil;
import org.jfaster.mango.plugin.page.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.util.List;

/**
 * @author zk123
 * @version 2018/5/22
 */
@Service
public class ProductService {
    /**
     * 产品dao
     */
    @Autowired
    private ProductDao productDao;

    /**
     * 添加product
     *
     * @param product p
     */
    public void add(Product product){
        if(!StringUtils.isEmpty(product.getStatus())){
            product.setStatus(1L);
        }
        product.setCreateTime(System.currentTimeMillis());
        product.setId(RandomUtil.getUUID());
        productDao.add(product);
    }

    /**
     * 根据分类获取商品
     *
     * @param cid cid
     * @return product
     */
    public List<Product> getAllByCid(String cid, Page page){
        return productDao.getAllByCid(cid,page);
    }
    /**
     * 根据可用的商品
     *
     * @param cid cid
     * @return product
     */
    public List<Product> getAvaliByCid(String cid, Page page){
        return productDao.getAvaliByCid(cid,page);
    }

    /**
     * 根据商家id获取productList
     *
     * @param bid bid
     * @return list
     */
    public List<Product> getAllByBid(String bid,Page page){
        return productDao.getAllByBid(bid,page);
    }

    /**
     * 根据id获取
     *
     * @param id id
     * @return product
     */
    public Product getOne(String id){
        return productDao.getOne(id);
    }

    /**
     * 根据id删除
     *
     * @param id id
     */
    public void remove(String id){
        productDao.remove(id);
    }

    /**
     * 更新指定的product
     *
     * @param product product
     */
    public void update(Product product){
        if(StringUtils.isEmpty(product.getImageUrl())){
            product.setImageUrl(null);
        }
        productDao.update(product);
    }
}
